#include "key.h"

void key_init(void)
{
    gpio_config_t boot_init_struct;

    boot_init_struct.pin_bit_mask=1ULL<<BOOT_GPIO_PIN;
    boot_init_struct.mode=GPIO_MODE_INPUT;
    boot_init_struct.intr_type=GPIO_INTR_DISABLE;
    boot_init_struct.pull_up_en=GPIO_PULLUP_ENABLE;
    boot_init_struct.pull_down_en=GPIO_PULLDOWN_DISABLE;

    gpio_config(&boot_init_struct);
}

uint8_t key_scan(uint8_t mode)
{
    uint8_t key_value=KEY_GPIO_LEFT;
    static uint8_t key_pres=KEY_GPIO_LEFT;

    if(mode==1)
    {
        key_pres=KEY_GPIO_LEFT;
    }

    if(KEY_VALUE==KEY_GPIO_PRES)
    {
        vTaskDelay(pdMS_TO_TICKS(20));
        if(key_pres==KEY_GPIO_LEFT &&
            KEY_VALUE==KEY_GPIO_PRES)
        {
            key_pres=KEY_GPIO_PRES;
            key_value=KEY_GPIO_PRES;
        }
    }
    else
    {
        key_pres=KEY_GPIO_LEFT;
    }

    return key_value;
}